无限 for 循环的实现【Python】

您所在的位置:网站首页 python循环语句for i in range用数组 无限 for 循环的实现【Python】

无限 for 循环的实现【Python】

2023-09-05 04:16| 来源: 网络整理| 查看: 265

for 循环怎么才能无限循环下去呢? 1. 最 low 的方法:一个无限的列表

理解 for 在干什么,在遍历,那我们给他一个无限长的东西,不就无限循环了。

list_ = [None] for _ in list_: list_.append(None) # Other operations. 优点:易于理解,最容易想到的方式缺点:速度慢,占内存,最后肯定会溢出的,其实不是真正意义上的无限。 2. 实现一个无限的迭代器

理解 for 的本质,是先获取一个迭代器,再依次调用 next 。那我们自己实现一个迭代器,让它的 next 永远都不不抛出 StopIteration 异常,那不就永远 for 下去了

class MyIter: def __iter__(self): return self def __next__(self): pass for _ in MyIter(): # Other operations. 优点:真正的无限,不浪费内存缺点:依然需要个人手动实现一些东西 3. 使用内置的无限迭代器

使用别人已经造好的无限迭代器,避免自己写了

3.1 count from itertools import count for i in count(): print(i) # Other operations. 优点:近似是无限的,不需要手动实现什么,自带自定义初始值、步长的计数缺点:如果时间无限,内存有限,那么可以认为有一天计数的值会非常大,大到计算机放不下,当然不需要等到那一天,只要数字足够大,就会比其他无限迭代器浪费时间 3.2 cycle、repeat

cycle

from itertools import cycle for _ in cycle((None,)): # Other operations.

repeat

from itertools import repeat for _ in repeat(None): # Other operations.

cycle 和 repeat 都是用来实现重复输出的。cycle 是重复一堆对象,repeat 是重复一个对象。

优点:无需手动实现,真正意义上的无限



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3